#include "Processing/RainbowVisitor.hpp"

namespace mif
{
	
	RainbowVisitor::RainbowVisitor()
	{
		//EMPTY
	}
	
	RainbowVisitor::~RainbowVisitor()
	{
		//EMPTY
	}
	
	void RainbowVisitor::Colored(Mesh & pMesh)
	{
	
		std::cout << "RainbowVisitor Processing ..." << std::endl;
		
		for(auto vFaceIt = pMesh.FaceBegin(); vFaceIt != pMesh.FaceEnd(); vFaceIt++){
			
					RGBA vColor; 
					
					vColor.r = (*vFaceIt).GetID() % 256;
					vColor.g = 255 - ((*vFaceIt).GetID() % 256); 
					vColor.b = ((*vFaceIt).GetID() * 2) % 256; 
					vColor.a = 0; 
					
					vFaceIt->SetColor(vColor);
		
		}
			
	}
	
}
